﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	[DataContract]
	public enum СостоянияСоглашенийЭД
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"d184530c-2e44-4a11-a047-72f2a0af8a1f\", \"Представление\":\"Действует\"}")]
		Действует = 0,
		[EnumMember(Value = "{\"Ссылка\":\"19b40538-69a8-4d92-ac77-88068dac2942\", \"Представление\":\"Закрыто\"}")]
		Закрыто = 1,
		[EnumMember(Value = "{\"Ссылка\":\"a4c5b9c9-826e-4e5c-8631-bb864b5f7068\", \"Представление\":\"ОжидаетсяСогласование\"}")]
		ОжидаетсяСогласование = 2,//Ожидается согласование
	}
	public static partial class СостоянияСоглашенийЭД_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid Действует = new Guid("f27247a0-afa0-1f8a-4a11-2e44d184530c");
		public static readonly Guid Закрыто = new Guid("068877ac-ac8d-4229-4d92-69a819b40538");
		public static readonly Guid ОжидаетсяСогласование = new Guid("86bb3186-5f4b-6870-4e5c-826ea4c5b9c9");//Ожидается согласование
		public static СостоянияСоглашенийЭД Получить(this СостоянияСоглашенийЭД Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static СостоянияСоглашенийЭД Получить(this СостоянияСоглашенийЭД Значение, Guid Ссылка)
		{
			if(Ссылка == Действует)
			{
				return СостоянияСоглашенийЭД.Действует;
			}
			else if(Ссылка == Закрыто)
			{
				return СостоянияСоглашенийЭД.Закрыто;
			}
			else if(Ссылка == ОжидаетсяСогласование)
			{
				return СостоянияСоглашенийЭД.ОжидаетсяСогласование;
			}
			return СостоянияСоглашенийЭД.ПустаяСсылка;
		}
		public static byte[] Ключ(this СостоянияСоглашенийЭД Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this СостоянияСоглашенийЭД Значение)
		{
			switch (Значение)
			{
				case СостоянияСоглашенийЭД.Действует: return Действует;
				case СостоянияСоглашенийЭД.Закрыто: return Закрыто;
				case СостоянияСоглашенийЭД.ОжидаетсяСогласование: return ОжидаетсяСогласование;
			}
			return Guid.Empty;
		}
	}
}